package com.ticket.system.service;

import com.ticket.system.domain.YanchuPerform;
import com.ticket.system.domain.vo.PerFormAppVO;
import com.ticket.system.domain.vo.PerformVo;

import java.util.List;

/**
 * 演出Service接口
 * 
 * @author ruoyi
 * @date 2023-09-27
 */
public interface IYanchuPerformService 
{
    /**
     * 查询演出
     * 
     * @param id 演出主键
     * @return 演出
     */
    public YanchuPerform selectYanchuPerformById(Long id);

    /**
     * 查询演出列表
     * 
     * @param yanchuPerform 演出
     * @return 演出集合
     */
    public List<YanchuPerform> selectYanchuPerformList(YanchuPerform yanchuPerform);
    public List<YanchuPerform> selectPerformStaticsList(String operaIds,String status,String performTypes,String performName);
    public List<PerformVo> selectPerformVoList(YanchuPerform yanchuPerform);

    public PerformVo selectPerformVoDetail(Long performId);

    /**
     * 新增演出
     * 
     * @param yanchuPerform 演出
     * @return 结果
     */
    public int insertYanchuPerform(YanchuPerform yanchuPerform);

    /**
     * 修改演出
     * 
     * @param yanchuPerform 演出
     * @return 结果
     */
    public int updateYanchuPerform(YanchuPerform yanchuPerform);

    /**
     * 批量删除演出
     * 
     * @param ids 需要删除的演出主键集合
     * @return 结果
     */
    public int deleteYanchuPerformByIds(Long[] ids);

    /**
     * 删除演出信息
     * 
     * @param id 演出主键
     * @return 结果
     */
    public int deleteYanchuPerformById(Long id);

    /**
     * 海报管理  筛选演出
     *
     * @param operaId
     * @param keyName
     * @return
     */
    List<YanchuPerform> getPerformByPosters(Long operaId,String keyName);

    /**
     * 所有演出
     *
     * @return
     */
    List<YanchuPerform> selectYanchuPerformLists(Long operaId);

    /**
     * 小程序演出列表
     *
     * @param keyName
     * @param performType
     * @param operaId
     * @param startTime
     * @param endTime
     * @return
     */
    List<PerFormAppVO> selectPerformList(List<String> keyName, Long performType, Long operaId,String startTime,String endTime,Integer type,Integer orderType,Double longitude,Double latitude);

    YanchuPerform selectMobYanchuPerformById(Long performId);

    List<PerFormAppVO> selectPerformQueryList(List<String> keyName, Long performType, Long operaId,String startTime,String endTime,Integer type,
                                              Integer orderType,Double longitude,Double latitude);
}
